package com.ibeeking.found.open.b.rest.service;

import com.ibeeking.found.open.api.common.dto.OrderAddResultDTO;
import com.ibeeking.found.open.api.common.dto.OrderAmountDTO;
import com.ibeeking.found.open.api.common.dto.OrderChargebackDTO;
import com.ibeeking.found.open.api.common.param.ErpPayTypeParam;
import com.ibeeking.found.open.api.common.param.OrderChargebackParam;
import com.ibeeking.found.open.api.common.query.OrderChargebackQuery;
import com.ibeeking.found.open.service.common.param.OrderAddParam;
import com.ibeeking.found.open.service.common.query.OrderAmountQuery;

import java.util.List;

/**
 * @ClassName IOrderService
 * @Description
 * @Author ibeeking
 * @Date 2021-06-15 19:02
 **/
public interface IOrderService {

    /**
     * 查询订单金额
     * @param query
     * @return
     */
    OrderAmountDTO queryOrderAmount(OrderAmountQuery query);

    /**
     * 订单支付成功通知
     * @param param
     * @return
     */
    OrderAddResultDTO addOrder(OrderAddParam param);

    /**
     * 订单退货查询
     * @param query
     * @return
     */
    OrderChargebackDTO queryChargeback(OrderChargebackQuery query);

    /**
     * 订单退货通知
     * @param param
     * @return
     */
    Boolean orderChargeback(OrderChargebackParam param);

    /**
     * 订单取消退货通知
     * @param param
     * @return
     */
    Boolean cancelChargeback(OrderChargebackParam param);

    /**
     * 订单退货完成通知
     * @param param
     * @return
     */
    Boolean successChargeback(OrderChargebackParam param);

    Boolean savePayType(List<ErpPayTypeParam> params);
}
